本文从阅读理解模型自身出发,利用对抗的思路自动发现对抗样本,从而有针对性地加强模型的鲁棒性。
paper: https://drive.google.com/open?id=1lWlaRQvSW8orUwmIM5HRRKtp_K2gQKes
source: AAAI 2020
Introduction
机器阅读理解技术是自然语言处理领域的热门方向,该技术可以使计算机具备从文本数据中获取知识并回答问题的能力。近年来很多研究表明机器阅读理解模型对于对抗攻击是非常脆弱的,导致模型在很多应用场景上出现效果鲁棒性问题甚至安全问题。
对此有研究表明通过总结这些误导性文字的对抗规律,借助人工规则驱动的方式构建类似对抗样本,并在此基础上进行训练,得到的阅读理解模型可以很好地防御相关对抗样本。它的优点是在目标集合上非常有效,但是仍然有一个缺点:需要人工参与,且无法通过规则的方式枚举出所有可能的对抗样本类型及其规则。
Method
论文提出了一种模型驱动的方法,使用自动对抗的方法自动生成未观察过的对抗样本,并运用生成的样本最终提升阅读理解模型的效果鲁棒性,全程无需人工参与。
该方法可以简单地划分为三个步骤:
- 对每个训练样本利用对抗的方法生成一个干扰向量输入,使得它能够误导当前的阅读理解模型;
- 采用贪心策略从干扰向量的词汇权重中采样得到对应的离散化的干扰文本;
- 使用干扰文本构建用于训练的对抗样本,并重新训练阅读理解模型并重复上述步骤直至收敛。
在步骤(1)中,针对已有阅读理解模型训练干扰向量的方法如下图高亮所示。对于任意一组训练样本,该方法在embedding输入中随机插入一段由词表embedding加权得到的干扰向量序列,组成含有干扰的embedding输入序列。作者在实验中指出,这里的词表只是抽取的一部分词汇,目的是使模型更易收敛。
在训练干扰向量时,固定阅读理解模型参数,以最小化当前模型正确预测概率为目标,使用梯度下降的方法调整归一化的词表权重,从而生成能够达到迷惑目的的干扰向量序列。作者考虑两类对抗样本(生成的对抗文本都位于文章passage里,而且均是新增文本,插入位置随机,这是文章的假设前提),因此定义了两种损失函数:
- 误导的答案文本,使得模型认为预测答案位于生成的文本中:$$L_{a}=-\frac{1}{2} \sum_{y \in\left\{s_{d}^{s}, s_{d}^{e}\right\}} \log \operatorname{Pr}\left(y | e_{q}, e_{p}^{\prime} ; \theta\right)$$
- 误导的上下文文本,使得模型预测出正确答案的似然概率最小:$$L_{c}=\frac{1}{2} \sum_{y \in\left\{s_{g}^{s}, s_{g}^{e}\right\}} \log \operatorname{Pr}\left(y | e_{q}, e_{p}^{\prime} ; \theta\right)$$
- 额外的正则化损失,使得生成的对抗文本与原始的文章答案尽可能区分,这里使用cos距离来衡量相似度:$$R_{s}=\lambda_{q} \operatorname{sim}\left(e^{\prime}, e_{q}\right)+\lambda_{a} \operatorname{sim}\left(e^{\prime}, e_{a}\right)$$
在步骤(2)中,针对干扰向量序列上的各个干扰向量,作者使用贪心的方法采样词表中词汇embedding与干扰向量欧式距离最近的词汇作为该位置的代表词,从而生成一段干扰文本。由于该算法的特性,可以近似地直接选取词表中权重最大的词作为代表词。
在步骤(3)中,作者将生成的干扰文本重新加入到对应训练数据中,构建成为具有对抗意义的对抗样本(adversarial examples),并在训练数据中追加上这些样本进行重新训练,得到鲁棒性加强后的阅读理解模型。并运用该模型继续从步骤(1)开始下一轮迭代,寻找新的能够对抗当前模型的样本,直至收敛。作者指出,每次迭代只会添加5%的训练数据用来对抗生成,过多的数据并无帮助。
Experiment
经实验验证,作者发现当前包含BERT和ERNIE等预训练模型在内的最好的阅读理解模型,在面对对抗样本的时候仍然非常脆弱。在5类不同的对抗测试集上,效果均有较大幅度下降,其中BERT-large和ERNIE2.0效果降幅绝对值超过17%。而当同样的模型运用上论文中的对抗训练方法后,在不同的对抗数据集上均有非常显著的效果提升,相比基线效果错误率降低50%。
作者通过相关实验,发现论文提出的模型驱动的方法确实能够生成多样性更加丰富的干扰文本(下图中绿点),从而有效补充人工规则的不足。同时也发现使用该方法生成的对抗样本case仍然较为杂乱,并不具备很好的流利度甚至完全不是自然语言,因此当前对抗生成的方法仍然有较大提升空间。